package models
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	
	import view.ListButton;
	
	import vo.EmbedVo;
	
	public class ModelLocator
	{
		/**
		 * 嵌入资源类
		 * */
		public var embedVo:EmbedVo = new EmbedVo();
		
		/*private var myxml:XML =   <size>	
									<item w='5' h='5'/>
									<item w='5' h='5'/>
									<item w='5' h='5'/>
									<item w='5' h='5'/>
									<item w='8' h='6'/>
									<item w='9' h='12'/>
									<item w='14' h='14'/>
									<item w='16' h='18'/>
									<item w='20' h='20'/>
									<item w='22' h='24'/>
									<item w='25' h='27'/>
									<item w='30' h='30'/>
									<item w='32' h='32'/>
									<item w='35' h='35'/>
									<item w='60' h='36'/>
								</size>;*/
		/*private var boderxml:XML =   <border>	
										<type name='木版画'>
											<item>
												<pic url='assets/img/1.jpg'/>
												<detailPic url='assets/img/1.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/2.jpg'/>
												<detailPic url='assets/img/2.jpg'/>
												<editPic url='assets/img/a.png'/>												
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/3.jpg'/>
												<detailPic url='assets/img/3.jpg'/>
												<editPic url='assets/img/a.png'/>													
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/4.jpg'/>
												<detailPic url='assets/img/4.jpg'/>
												<editPic url='assets/img/a.png'/>													
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/5.jpg'/>
												<detailPic url='assets/img/5.jpg'/>
												<editPic url='assets/img/a.png'/>													
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/6.jpg'/>
												<detailPic url='assets/img/6.jpg'/>
												<editPic url='assets/img/a.png'/>								
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/7.jpg'/>
												<detailPic url='assets/img/7.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											<item>
												<pic url='assets/img/8.jpg'/>
												<detailPic url='assets/img/8.jpg'/>
												<editPic url='assets/img/a.png'/>												
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
											
										</type>
										<type name='金子'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='银'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='铜'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='铁'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='铝'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='锡'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='手工'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='类型1'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='类型2'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='类型3'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='类型4'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='类型5'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
										<type name='类型6'>
											<item>
												<pic url='assets/img/98.jpg'/>
												<detailPic url='assets/img/9.jpg'/>
												<editPic url='assets/img/a.png'/>
												<data info='BitmapData 对象包含像素数据的数组。此数据可以表示完全不透明的位图，或表示包含 Alpha 通道数据的透明位图。以上任一类型的 BitmapData 对象都作为 32 位整数的缓冲区进行存储。每个 32 位整数确定位图中单个像素的属性。每个 32 位整数都是四个 8 位通道值（从 0 到 255）的组合，这些值描述像素的 Alpha 透明度以及红色、绿色、蓝色 (ARGB) 值。（对于 ARGB 值，最高有效字节代表 Alpha 通道值，其后的有效字节分别代表红色、绿色和蓝色通道值。）'/>
											</item>
										</type>
									</border>;*/
		public var sizeAry:Array = new Array;
		public var size:String;
		public var boderAry:Array;
		public var boderAllAry:Array;
		public var isLoaderboderAry:Boolean;
		public var selectData:Object;
		/*[Embed(source='assets/temp/122.jpg')]
		private var cls:Class;*/
		private var _bitmap:Bitmap;
		public var config:Object;
		public var currentListBtn:ListButton;
		private static var instance:ModelLocator;  
  
        public static function getInstance():ModelLocator  
        {  
            if(instance==null)  instance = new ModelLocator();  
            return instance;  
        }  
  																											
        public function ModelLocator()  
        {  
           if(instance!=null) throw new Error("Error: Singletons can only be instantiated via getInstance() method!");  
            ModelLocator.instance = this;  
			//setSizeAry();
			//setBoderAry();
			//selectData = boderAry[0].list[0]
        }  
		public function setSizeAry(myxml:XML):void{
			for each(var classify:XML in myxml.classify){
				var ary:Array = new Array;
				for each(var prop:XML in classify.item){
					var obj:Object = new Object;
					obj.w = int(prop.@w);
					obj.h = int(prop.@h);
					obj.price = int(prop.@price)
					obj.frameprice = int(prop.@frameprice)	
					obj.name = String(classify.@name);
					ary.push(obj);
				}
				var classObj:Object = new Object;
				classObj.name = String(classify.@name);
				classObj.data = ary;
				sizeAry.push(classObj);
			}
		}
		public function setBoderAry(boderxml:XML):void{
			boderAllAry = new Array;
			for each(var prop:XML in boderxml.type){
				var obj:Object = new Object;
				var ary:Array = new Array;
				boderAllAry.push(obj);
				obj.name = String(prop.@name);
				obj.list = ary;
				var itemObj:Object;
				for each(var item:XML in prop.item){
					itemObj = new Object;
					itemObj.pic = String(item.pic.@url);
					itemObj.detailPic = String(item.detailPic.@url);
					itemObj.editPic = String(item.editPic.@url);
					itemObj.info = String(item.data.@info);
					itemObj.id = String(item.id.@ID);
					itemObj.name = String(item.name.@str);
					itemObj.size = String(item.size.@size);
					//itemObj.price = String(item.price.@RMB);
					ary.push(itemObj);
				}
				
			}
		}
		public function setNewBorderAry(key:String):void{
			boderAry = new Array;
			for(var i:int=0;i<boderAllAry.length;i++){
				var list:Array = boderAllAry[i].list;
				var newList:Array = new Array;
				for(var j:int=0;j<list.length;j++){
					var obj:Object = list[j];
					if(obj.size == key){
						newList.push(obj);
					}
				}
				if(newList.length){
					var newObj:Object = new Object;
					newObj.name = boderAllAry[i].name;
					newObj.list = newList;
					boderAry.push(newObj);
				}
			}
			var nullobj:Object = new Object();
			nullobj.name = "无框";
			nullobj.list = null;
			boderAry.push(nullobj);
			/*for each(var typeObj:Object in boderAllAry){
				if(obj.size == key){
					boderAry.push(boderAry);
				}
			}*/
		}
		public function get bitmap():Bitmap{
			var bitmapdata:BitmapData = _bitmap.bitmapData.clone();
			var bit:Bitmap = new Bitmap(bitmapdata);
			return bit;
		}
		public function set bitmap(value:Bitmap):void{
			this._bitmap = value;
		}
		
	}
}